Many business applications, such as Enterprise Resource Planning (ERP) applications, generate and manage large amounts of business transaction data which are stored in many different formats (e.g. RDBMs, LDAP directories, flat files, etc.), and which use a plethora of different schema or data models.
In addition, governance, risk, and compliance (GRC) concerns often lead businesses to have internal business policies intended to address a wide range of issues such as security, privacy, trade secrets, criminal activity of employees or others with access to the business, and many others. These business policies address various aspects of a business, such as purchasing, selling, marketing, and internal administration. Because of the large number of activities occurring during the course of running a business, which may have various entities located in a variety of geographical locations, it is often impractical to manually monitor all activities in which improper behavior or mistakes may occur. Thus, GRC concerns often require that dynamic, legislative, and trend-driven policies be enforced against business transaction data which may span multiple business applications and, therefore, potentially a set of disparate, yet related, data sources.
Moreover, users of business applications typically prefer to interact with applications that assist in policy enforcement using relevant business semantics as opposed to application-specific or storage-specific semantics.
On approach to monitoring and controlling a business' computer systems involves storing business data in one or more ontologies. With the advent of semantic technologies, the importance of ontologies and semantic query languages has grown manifold. An ontology is a formal representation of knowledge, specifically a formal representation of a set of concepts within a domain and relationships between the concepts. Ontologies are used in several different areas including business analytics, enterprise systems, artificial intelligence and the like, and have and the potential to be used in several other fields and applications.
An ontology is typically encoded using an ontology language. Several ontology languages are available. The OWL Web Ontology Language has become the industry standard for representing web ontologies. OWL can be used to explicitly represent the meaning of terms in vocabularies and the relationships between the terms. OWL thus provides facilities for expressing meaning and semantics that goes far beyond the capabilities of languages such as XML. OWL is being developed by the Web Ontology Working Group as part of the W3C Semantic Web Activity.
An ontology may be persisted in memory such as in a database or other data store. There are several standard ways of querying and manipulating the data in an ontology using query languages such as RDQL (Resource Description Format Query Language), OWL-QL, SPARQL (SPARQL Protocol and RDF Query Language), and others. Among the ontology query languages, SPARQL is considered by many to be the de facto industry standard.
In the context of a business, data from one or more data stores may be periodically compiled in an ontology, such as in a batch process occurring at times when there is less use of the business' computer systems, such as at night when most employees are not present. Once compiled in an ontology, an ontology reasoner can be used to make logical inferences from the ontology. Generally, an ontology reasoner is a module implemented in hardware or software executed by a processor, configured to infer logical consequences from a set of facts or axioms stored in an ontology. This process is often referred to as “reasoning.” Data from an ontology may be converted into a form convenient for processing by the reasoner, such as in a manner described in co-pending U.S. patent application Ser. No. 12/576,176, entitled “Techniques for Processing Ontologies,” filed on Oct. 8, 2009, and which is incorporated herein by reference for all purposes. Ontology reasoners are also known as reasoning engines, rules engines, or simply reasoners. Examples include RETE-based rules engines such as JESS, a rules engine for the Java platform, and probabilistic description logic reasoners such as Pronto, available from Clark & Parsia LLC, located at 926 N St. NW Rear, Studio #1, Washington, DC 20001. Ontology reasoners typically incorporate algorithms that, if possible, avoid analyzing complete data sets, and instead analyze only relevant data.
Traditional approaches to business policy enforcement have several shortcomings. For instance, typically business applications create and store very large amounts of data to satisfy various needs of the business. The physical and logical data stores for these applications are typically designed by and organized for use by technical users, not for business users. For instance, types and degree of normalization in Relational Database Management Systems (RDBMSs) are tuned for functionality and performance as opposed to ease of semantic understanding by business users. Thus, the applications operate and store data using terminology that is often meaningless to business analysts. Performing policy analysis using transactional data may involve, for instance, using Structured Query Language (SQL), which is verbose and overly complex for typical business users and whose complexity grows as the complexity of the analysis grows. In addition, with RDBMSs, certain types of queries, such as those containing sliding time-windows, are difficult to accommodate. Complicating matters, each business application may store data differently, often for convenience for each application.
As another example, many business applications hold mission critical data and, therefore, do not expose transactional data, but use datamarts for external analysis to avoid performance loss. This and other data are constantly updated by business systems, making snap-shot techniques difficult to perform and potentially inconsistent in the resulting analysis.